﻿using System;
using System.Web.UI.WebControls;
using Enums;
using Vallejos.Entidades.Enums;
using Vallejos.Entidades.ModeloDeDatos;
using Vallejos.Negocio;

public partial class Seguridad_Usuarios_BusquedaUsuarios : System.Web.UI.Page
{
    private const string PaginaDeModificacion = "ModificacionUsuarios.aspx";

    #region "Eventos De Pagina"
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            CargarListas();
        }
    }

    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];

        var persona = new EmpleadoDeConcesionaria
        {
            DatosPersonales = new InformacionPersonal()
            ,
            Usuario = new Usuario()
        };


        if (ddlAmbito.SelectedIndex != 0)
            persona.Ambito = new Ambito { IdAmbito = (IdAmbito)ddlAmbito.SelectedIndex };

        persona.DatosPersonales.Nombre = txtNombre.Text;

        if (ddlConcesionaria.SelectedIndex > 0)
            persona.Concesionaria = new Concesionaria { Id = Convert.ToInt32(ddlConcesionaria.SelectedValue) };

        persona.DatosPersonales.Apellido = txtApellido.Text;

        if (ddlPerfil.SelectedIndex > 0)
            persona.Usuario.Perfil = new Perfil { Id = Convert.ToInt32(ddlPerfil.SelectedValue) };

        if (ddlSexo.SelectedIndex > 0)
            persona.DatosPersonales.Sexo = new Sexo { IdSexo = (IdSexo)ddlPerfil.SelectedIndex };

        persona.Usuario.Login = txtLogin.Text;

        gvUsuarios.DataSource = negocio.BuscarPersonas(persona);
        gvUsuarios.DataBind();
    }

    protected void btnAltaUsuario_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        negocio.AlmacenarEntidadEnEdicion<Persona>(null);
        Response.Redirect(PaginaDeModificacion);
    }

    protected void gvUsuarios_SelectedIndexChanged(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        var idPersona = Convert.ToInt32(((GridView)sender).SelectedValue);
        negocio.AlmacenarEntidadEnEdicion(negocio.LeerPersona(idPersona));

        Response.Redirect(PaginaDeModificacion);
    }
    #endregion

    #region Listas
    private void CargarListas()
    {
        CargarAmbitos();
        Cargarconcesionarias();
        CargarPerfiles();
        CargarSexos();
    }

    private void CargarSexos()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlSexo, negocio.LeerSexos(),
            "IdSexo", "Nombre");
    }

    private void CargarPerfiles()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlPerfil, negocio.LeerPerfiles(),
            "Id", "Nombre");
    }

    private void CargarAmbitos()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlAmbito, negocio.LeerAmbitos(),
            "IdAmbito", "Nombre");
    }

    private void Cargarconcesionarias()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlConcesionaria, negocio.LeerConcesionarias(),
            "Id", "RazonSocialNombre");
    }
    #endregion

    
}